package com.itcast.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FanoutConfig {
    //声明队列1
    @Bean
    public Queue fanoutQueue1() {
        return new Queue("fanoutQueue1",false); //声明队列，第二个参数表示是否持久化队列，不持久化的队列重启mq后会删除。
        //还可以用工具类声明队列
        //return QueueBuilder.nonDurable("fanoutQueue").build();
    }
    //声明队列2
    @Bean
    public Queue fanoutQueue2() {
        return new Queue("fanoutQueue2",false); //声明队列，第二个参数表示是否持久化队列，不持久化的队列重启mq后会删除。
        //还可以用工具类声明队列
        //return QueueBuilder.nonDurable("fanoutQueue").build();
    }
    //声明交换机
    @Bean
    public FanoutExchange fanoutExchange() {
        //同样有两种构造方法
        return new FanoutExchange("fanoutExchange",false,false);//第二个参数表示是否持久化,第三个参数表示是和否自动删除
        //return ExchangeBuilder.fanoutExchange("fanoutExchange").durable(false).build();
    }
    //将队列1和交换机绑定
    @Bean
    public Binding bindingQueue1() {
        return BindingBuilder.bind(fanoutQueue1()).to(fanoutExchange());
    }
    //将队列2和交换机绑定
    @Bean
    public Binding bindingQueue2() {
        return BindingBuilder.bind(fanoutQueue2()).to(fanoutExchange());
    }
}
